Generally, users of computing systems have a need to store data, applications, and so forth. Typically, the data, applications, and so on, may be stored on a storage device, which may be located locally with the user, remotely located from the user, or a combination thereof.
An important feature of a storage system may be a high degree of reliability. The high degree of reliability will help to ensure that the storage system is able to provide access to information stored in the storage system. Given that storage devices, especially mechanical storage devices, such as magnetic disk drives, magnetic tape, and so forth, may be prone to failure, the high degree of reliability may require the implementation of a system and method specifically designed to ensure the reliability of the storage system.
As an example, consider a user operating a virtual machine in a cloud computing environment. The user may have a need to access information stored on a storage device that may appear as a local device, but may actually be stored on a number of locations within the cloud computing infrastructure. The user may need to be able to read and/or write information to the storage device with high probability of success.
A prior art technique for providing high reliability in a storage system involves the use of multiple storage devices and creating a duplicate (i.e., a mirror) of the information or recovery information (e.g., parity information) for information stored on one or more of the storage devices onto one or more duplicate storage devices. However, the inherent redundancy may require a significant number of accesses to the multiple storage devices, thereby increasing communications interface overhead, messaging traffic, and so forth, which may negatively impact overall storage system performance.
Therefore, there is a need to provide a highly reliable storage system with reduced communications interface overhead, messaging traffic, and so on.